<?php

class TaksasiModel{
	private $db;
	private $subbagian;
	
	private $validColumn;

	private $data;
	private $month;

	private $result;
	
	function TaksasiModel($dbObject){
		$this->subbagian 	= 'taksasi';		
		$this->db 			= $dbObject;

		$this->validColumn  = array(
			'tahun', 
			'bulan');
		$this->month = array(
			'januari',
			'februari',
			'maret',
			'april',
			'mei',
			'juni',
			'juli',
			'agustus',
			'september',
			'oktober',
			'november',
			'desember'			
		);
	}
	
	private function getGET($param){
		if( isset( $_GET[$param] ) && $_GET[$param] != '' )
			return $_GET[$param];
		else
			return NULL;
	}

	public function listTaksasi(){
		$q = "
			SELECT bulan, jumlah FROM `caramel_managerial`.`taksasi_produksi`
			WHERE `tahun`='2008'
		";

		$result = $this->db->get_results($q, ARRAY_A);
		
		$taksasi = array_combine($this->month,array_fill(0,12,'0'));
		
		if( count($result) > 0 ){
			foreach($result as $r){
				$taksasi[$this->month[(int)$r['bulan']-1]] = $r['jumlah'];
			}
		}
		
		return $taksasi;
	}
	
	public function listProduksi(){			
		
		$q = "
			SELECT MONTH(tgl_masuk) as bulan, SUM(jml_biji_saleable) as jumlah
			FROM `caramel_operational`.`inv_seleksi_akhir`
			WHERE YEAR(tgl_masuk) = '2008'
			AND MONTH(tgl_masuk) <> '12'
			GROUP BY MONTH(tgl_masuk)
		";
		$result = $this->db->get_results($q, ARRAY_A);
		
		$produksi = array_combine($this->month,array_fill(0,12,'0'));
		foreach($result as $r){
			$produksi[$this->month[(int)$r['bulan']-1]] = $r['jumlah'];
		}
		
		return $produksi;
	}
	
	
	public function getResult(){
		return $this->result;
	}

	function format($data){
		$result = array();
		foreach($this->validColumn as $v){
			if( isset($data[$v]) )
				$result[$v] = $data[$v];
			else
				$result[$v] = NULL;
		}
		
		return $result;
	}
	
	private function insertTaksasi(){
		$dataTaksasi   = array();
		$taksasiColumn = array(
			'tahun', 
			'bulan');
		
		// copy dari $data ke $dataTaksasi
		foreach($taksasiColumn as $c){
			$dataTaksasi[$c] = $this->data[$c];
		}
		
		// clean up
		$query = "DELETE FROM `caramel_managerial`.`taksasi_produksi` WHERE `tahun`='".$dataTaksasi['tahun']."'";
		$this->db->query($query);
		
		$bulan = 1;
		foreach($dataTaksasi['bulan'] as $taksasi){
			$query = "
				INSERT INTO `caramel_managerial`.`taksasi_produksi` (`tahun`, `bulan`, `jumlah`) VALUES 
				('".$dataTaksasi['tahun']."', '".$bulan."', '".$taksasi."')
				";
			$this->db->query($query);
			$bulan++;
		}
	}	
	
	function put($data){		
		$this->data	= $this->format($data);// buang field2 yang tidak dibutuhkan
		
		if( $this->isExist() == FALSE ){				
			// taksasi
			$this->insertTaksasi();					
		}
		else{
			return INSERT_FAIL_DUPLICATE;
		}		
	}
	
	function isExist(){			
		return FALSE; // tidak ada data yang dicari... no duplicate		
	}
}
?>